// 常见定义方式
// 函数声明
function sum1_A(x, y) {
    return (x + y).toString();
}
// 函数表达式
// 不完整版,  只是限制了后方函数
let sum1_B = function (x, y) {
    return x + y;
};
// 完整 全面限制 
// 在TS的类型定义中, =>用来表示函数的定义, 
// 左边是输入类型，需要用括号括起来; 右边是输出类型
let sum1_C = function (x, y) {
    return x + y;
};
let mySearch;
mySearch = function (source, subString) {
    return source + subString;
};
// 可选参数
function sum2_A(x, y) {
    return y ? x + y : x;
}
// 可选参数 错误示例
// 可选参数之后不允许出现必须参数
// function sum2_B(x?: number, y: number): number {
//     return y ? x + y : x
// }
// 剩余参数
// 采用ES6中 rest方式
function sum3_A(x, ...arr) {
    return arr.unshift(x);
}
// 重载
// 详情查看http://ts.xcatliu.com/basics/type-of-function.html 底部
